Who should catch ( this Exception ) { ?

نویسنده

  • Walaa ElDin M. Moustafa
چکیده

In this paper, we propose a software tool that can be used to speed up the software development lifecycle by automating the process of assigning new bugs to developers. Open bug repositories are now very common, and they are provided to the software users as a means to report any bugs they find while using the software. Many of the bugs reported complain about exceptions that are thrown by the program during normal operation of the software. Users report these bugs to the development team using bug reporting tools, (e.g. Bugzilla), and as a result of that, a person called Bug Triager tries to link between this bug and a developer who can fix it. Sometimes, the source of the bug is unclear, and as a result of that the developer can be reassigned several times. In this project, we propose an approach to automate this process by recommending developers who can fix a bug that complains from an exception. Moreover, we provide a ranking of developers according to their expected relationship with the bug so that more than one developer can work on the bug if needed, or if the first recommendation is unavailable. The approach is based on network analysis, and uses link prediction to rank developers with respect to a bug report. Moreover, in this report, in addition to using link prediction, we show several applications to using network analysis in the context of software analysis, like importance ranking and visualization. The Eclipse open source project was taken as a case study, and its CVS and Bugzilla repositories were the source of the datasets used to evaluate our approach. Experimental evaluation of the link prediction approach for recommending developers reveals its effectiveness and shows that its recommendations were similar to the actual bug assignments to a far extent.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Formalisation of Java's Exception Mechanism

This paper examines Java's exception mechanism, and formalises its main operations (thro~, try-catch and try-catch-finally) in a type-theoretic setting. This formalisation uses so-called coalgebras for modeling Java statements and expressions, thus providing a convenient setting for handling the various termination options that may arise in exception handling (closely following the Java Languag...

متن کامل

Specifying and Dynamically Monitoring the Exception Handling Policy

The exception handling policy of a system comprises the set of design rules that specify its exception handling behavior (how exceptions should be handled and thrown). Such policy is usually undocumented and implicitly defined by the system architect. For this reason, developers may think that by just including catch-blocks in the code they can deal with exception conditions. This lack of infor...

متن کامل

Quality Time - Can Aspect-Oriented Programming Lead to More Reliable Software?

A spect-oriented programming is a novel topic in the software engineering and languages communities. AOP appears to have the potential to significantly improve the reliability of programs, particularly by modu-larizing error-handling policies and allowing for easier maintenance and better reuse. In this article we introduce AspectJ, the first aspect-oriented programming language, and demonstrat...

متن کامل

Statically-Scoped Exceptions: a Typed Foundation for Aspect-Oriented Error Handling

Aspect-oriented programming systems such as AspectJ provide mechanisms for modularizing crosscutting error-handling concerns. However, AspectJ’s advice does not integrate well with Java’s checked exception mechanism. Furthermore, conventional exception-handling facilities such as AspectJ’s share the problem of accidental exception capture due to the dynamic nature of exception-handling semantic...

متن کامل

Cleaning up after yourself

Performing cleanup actions such as restoring a variable or closing a file used to be impossible to guarantee in Forth before Forth-94 gave us catch. Even with catch, the cleanup code can be skipped due to user interrupts if you are unlucky. We introduce a construct that guarantees that the cleanup code is always completed. We also discuss a cheaper implementation approach for cleanup code than ...

متن کامل

Exceptions and Eventflow

Exceptions historically derive from a single-threaded, imperative model of computation. Rather than including tests for the success of subsidiary operations at every procedure level using if-then-else's, it was deemed simpler to describe problems only where they arise and where they are dealt with. The catch-throw style was transferred to C++ (and then Java), and also grafted onto the I/O struc...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008